<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MDF Lib: mdf::IDataGroup Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="utillib.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">MDF Lib<span id="projectnumber">&#160;2.2</span>
   </div>
   <div id="projectbrief">Interface against MDF 3/4 files</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search',false);
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacemdf.html">mdf</a></li><li class="navelem"><a class="el" href="classmdf_1_1_i_data_group.html">IDataGroup</a></li>  </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classmdf_1_1_i_data_group-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">mdf::IDataGroup Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">

<p>Interface to a data group (DG) block.  
 <a href="#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="idatagroup_8h_source.html">idatagroup.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mdf::IDataGroup:</div>
<div class="dyncontent">
<div class="center"><img src="classmdf_1_1_i_data_group__inherit__graph.png" border="0" usemap="#amdf_1_1_i_data_group_inherit__map" alt="Inheritance graph"/></div>
<map name="amdf_1_1_i_data_group_inherit__map" id="amdf_1_1_i_data_group_inherit__map">
<area shape="rect" title="Interface to a data group (DG) block." alt="" coords="5,79,121,104"/>
<area shape="rect" href="classmdf_1_1_i_block.html" title="Base class for all MDF blocks." alt="" coords="20,5,107,31"/>
<area shape="poly" title=" " alt="" coords="66,44,66,79,61,79,61,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for mdf::IDataGroup:</div>
<div class="dyncontent">
<div class="center"><img src="classmdf_1_1_i_data_group__coll__graph.png" border="0" usemap="#amdf_1_1_i_data_group_coll__map" alt="Collaboration graph"/></div>
<map name="amdf_1_1_i_data_group_coll__map" id="amdf_1_1_i_data_group_coll__map">
<area shape="rect" title="Interface to a data group (DG) block." alt="" coords="5,79,121,104"/>
<area shape="rect" href="classmdf_1_1_i_block.html" title="Base class for all MDF blocks." alt="" coords="20,5,107,31"/>
<area shape="poly" title=" " alt="" coords="66,44,66,79,61,79,61,44"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6081ead5102e7d5789591f3b3146e86f" id="r_a6081ead5102e7d5789591f3b3146e86f"><td class="memItemLeft" align="right" valign="top"><a id="a6081ead5102e7d5789591f3b3146e86f" name="a6081ead5102e7d5789591f3b3146e86f"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Description</b> (const std::string &amp;desc)</td></tr>
<tr class="memdesc:a6081ead5102e7d5789591f3b3146e86f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the descriptive text for the measurement. <br /></td></tr>
<tr class="separator:a6081ead5102e7d5789591f3b3146e86f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78d9cfdfa13f61456a929559a26d1275" id="r_a78d9cfdfa13f61456a929559a26d1275"><td class="memItemLeft" align="right" valign="top"><a id="a78d9cfdfa13f61456a929559a26d1275" name="a78d9cfdfa13f61456a929559a26d1275"></a>
virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><b>Description</b> () const</td></tr>
<tr class="memdesc:a78d9cfdfa13f61456a929559a26d1275"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the descriptive text. <br /></td></tr>
<tr class="separator:a78d9cfdfa13f61456a929559a26d1275"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19e0d40b686bdbd44d33f9d580e956e1" id="r_a19e0d40b686bdbd44d33f9d580e956e1"><td class="memItemLeft" align="right" valign="top"><a id="a19e0d40b686bdbd44d33f9d580e956e1" name="a19e0d40b686bdbd44d33f9d580e956e1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>RecordIdSize</b> (uint8_t id_size)</td></tr>
<tr class="memdesc:a19e0d40b686bdbd44d33f9d580e956e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets size of the record ID (bytes). Note that record ID and its size, is automatically set when writing MDF files. <br /></td></tr>
<tr class="separator:a19e0d40b686bdbd44d33f9d580e956e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44b8c0c4bcdafd873ca905065bf8e8df" id="r_a44b8c0c4bcdafd873ca905065bf8e8df"><td class="memItemLeft" align="right" valign="top"><a id="a44b8c0c4bcdafd873ca905065bf8e8df" name="a44b8c0c4bcdafd873ca905065bf8e8df"></a>
virtual uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>RecordIdSize</b> () const</td></tr>
<tr class="memdesc:a44b8c0c4bcdafd873ca905065bf8e8df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the record ID size in bytes. <br /></td></tr>
<tr class="separator:a44b8c0c4bcdafd873ca905065bf8e8df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54c458acb3c0ae0b5386280634d1e7a1" id="r_a54c458acb3c0ae0b5386280634d1e7a1"><td class="memItemLeft" align="right" valign="top"><a id="a54c458acb3c0ae0b5386280634d1e7a1" name="a54c458acb3c0ae0b5386280634d1e7a1"></a>
virtual std::vector&lt; <a class="el" href="classmdf_1_1_i_channel_group.html">IChannelGroup</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelGroups</b> () const =0</td></tr>
<tr class="memdesc:a54c458acb3c0ae0b5386280634d1e7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of channel groups. <br /></td></tr>
<tr class="separator:a54c458acb3c0ae0b5386280634d1e7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afed29264b81a0d487873cc9f1599c572" id="r_afed29264b81a0d487873cc9f1599c572"><td class="memItemLeft" align="right" valign="top"><a id="afed29264b81a0d487873cc9f1599c572" name="afed29264b81a0d487873cc9f1599c572"></a>
virtual <a class="el" href="classmdf_1_1_i_channel_group.html">IChannelGroup</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>CreateChannelGroup</b> ()=0</td></tr>
<tr class="memdesc:afed29264b81a0d487873cc9f1599c572"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new empty channel group. <br /></td></tr>
<tr class="separator:afed29264b81a0d487873cc9f1599c572"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3941c38155e646b85a9a32b31412724" id="r_ab3941c38155e646b85a9a32b31412724"><td class="memItemLeft" align="right" valign="top"><a id="ab3941c38155e646b85a9a32b31412724" name="ab3941c38155e646b85a9a32b31412724"></a>
<a class="el" href="classmdf_1_1_i_channel_group.html">IChannelGroup</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>CreateChannelGroup</b> (const std::string_view &amp;name)</td></tr>
<tr class="memdesc:ab3941c38155e646b85a9a32b31412724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new channel group or return the existing group. <br /></td></tr>
<tr class="separator:ab3941c38155e646b85a9a32b31412724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa981ede3ba1f2b41c5b4591e4af51931" id="r_aa981ede3ba1f2b41c5b4591e4af51931"><td class="memItemLeft" align="right" valign="top"><a id="aa981ede3ba1f2b41c5b4591e4af51931" name="aa981ede3ba1f2b41c5b4591e4af51931"></a>
<a class="el" href="classmdf_1_1_i_channel_group.html">IChannelGroup</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetChannelGroup</b> (const std::string_view &amp;name) const</td></tr>
<tr class="memdesc:aa981ede3ba1f2b41c5b4591e4af51931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the existing group by its name. <br /></td></tr>
<tr class="separator:aa981ede3ba1f2b41c5b4591e4af51931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca0a94816a076fdd1dd7593c4a75db4c" id="r_aca0a94816a076fdd1dd7593c4a75db4c"><td class="memItemLeft" align="right" valign="top"><a id="aca0a94816a076fdd1dd7593c4a75db4c" name="aca0a94816a076fdd1dd7593c4a75db4c"></a>
<a class="el" href="classmdf_1_1_i_channel_group.html">IChannelGroup</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetChannelGroup</b> (uint64_t record_id) const</td></tr>
<tr class="memdesc:aca0a94816a076fdd1dd7593c4a75db4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a channel group by its record id. <br /></td></tr>
<tr class="separator:aca0a94816a076fdd1dd7593c4a75db4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdaa4d4b7a82490c3bfebb365c72e76f" id="r_afdaa4d4b7a82490c3bfebb365c72e76f"><td class="memItemLeft" align="right" valign="top"><a id="afdaa4d4b7a82490c3bfebb365c72e76f" name="afdaa4d4b7a82490c3bfebb365c72e76f"></a>
virtual <a class="el" href="classmdf_1_1_i_meta_data.html">IMetaData</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>CreateMetaData</b> ()</td></tr>
<tr class="memdesc:afdaa4d4b7a82490c3bfebb365c72e76f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create or return the existing meta-data (MD) block. <br /></td></tr>
<tr class="separator:afdaa4d4b7a82490c3bfebb365c72e76f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7bf8e14291b30bd7b0cc4fb8946d206" id="r_af7bf8e14291b30bd7b0cc4fb8946d206"><td class="memItemLeft" align="right" valign="top"><a id="af7bf8e14291b30bd7b0cc4fb8946d206" name="af7bf8e14291b30bd7b0cc4fb8946d206"></a>
virtual <a class="el" href="classmdf_1_1_i_meta_data.html">IMetaData</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>MetaData</b> () const</td></tr>
<tr class="memdesc:af7bf8e14291b30bd7b0cc4fb8946d206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the existing meta-data (MD) block if it exist. <br /></td></tr>
<tr class="separator:af7bf8e14291b30bd7b0cc4fb8946d206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaa9908c2cbdf59ebe35c70301f85504" id="r_aeaa9908c2cbdf59ebe35c70301f85504"><td class="memItemLeft" align="right" valign="top"><a id="aeaa9908c2cbdf59ebe35c70301f85504" name="aeaa9908c2cbdf59ebe35c70301f85504"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>AttachSampleObserver</b> (<a class="el" href="classmdf_1_1_i_sample_observer.html">ISampleObserver</a> *observer) const</td></tr>
<tr class="memdesc:aeaa9908c2cbdf59ebe35c70301f85504"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function that attach a sample observer to the measurement block. <br  />
 <br /></td></tr>
<tr class="separator:aeaa9908c2cbdf59ebe35c70301f85504"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2bc81637aa4a99e99006d6156d7f187" id="r_aa2bc81637aa4a99e99006d6156d7f187"><td class="memItemLeft" align="right" valign="top"><a id="aa2bc81637aa4a99e99006d6156d7f187" name="aa2bc81637aa4a99e99006d6156d7f187"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>DetachSampleObserver</b> (const <a class="el" href="classmdf_1_1_i_sample_observer.html">ISampleObserver</a> *observer) const</td></tr>
<tr class="memdesc:aa2bc81637aa4a99e99006d6156d7f187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach an observer from the measurement. <br /></td></tr>
<tr class="separator:aa2bc81637aa4a99e99006d6156d7f187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cf4670be2c07315483c58650301f77c" id="r_a5cf4670be2c07315483c58650301f77c"><td class="memItemLeft" align="right" valign="top"><a id="a5cf4670be2c07315483c58650301f77c" name="a5cf4670be2c07315483c58650301f77c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>DetachAllSampleObservers</b> () const</td></tr>
<tr class="memdesc:a5cf4670be2c07315483c58650301f77c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detaches all observers from the measurement. <br /></td></tr>
<tr class="separator:a5cf4670be2c07315483c58650301f77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a343ae227f390dc22039bde527769cd2e" id="r_a343ae227f390dc22039bde527769cd2e"><td class="memItemLeft" align="right" valign="top"><a id="a343ae227f390dc22039bde527769cd2e" name="a343ae227f390dc22039bde527769cd2e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>NotifySampleObservers</b> (size_t sample, uint64_t record_id, const std::vector&lt; uint8_t &gt; &amp;record) const</td></tr>
<tr class="memdesc:a343ae227f390dc22039bde527769cd2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the observer that a new sample record have been read. <br /></td></tr>
<tr class="separator:a343ae227f390dc22039bde527769cd2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587a87009a2cc5bbdb067f4c7fbe4d1b" id="r_a587a87009a2cc5bbdb067f4c7fbe4d1b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a587a87009a2cc5bbdb067f4c7fbe4d1b">ClearData</a> ()</td></tr>
<tr class="memdesc:a587a87009a2cc5bbdb067f4c7fbe4d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all temporary sample and data buffers.  <br /></td></tr>
<tr class="separator:a587a87009a2cc5bbdb067f4c7fbe4d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cbda37bc1272538abfc05159cc87cc8" id="r_a2cbda37bc1272538abfc05159cc87cc8"><td class="memItemLeft" align="right" valign="top"><a id="a2cbda37bc1272538abfc05159cc87cc8" name="a2cbda37bc1272538abfc05159cc87cc8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetAsRead</b> (bool mark_as_read=true) const</td></tr>
<tr class="memdesc:a2cbda37bc1272538abfc05159cc87cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the DG blocks data as read. <br /></td></tr>
<tr class="separator:a2cbda37bc1272538abfc05159cc87cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea5ea980eb43d18958b9cb357188cce5" id="r_aea5ea980eb43d18958b9cb357188cce5"><td class="memItemLeft" align="right" valign="top"><a id="aea5ea980eb43d18958b9cb357188cce5" name="aea5ea980eb43d18958b9cb357188cce5"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsEmpty</b> () const</td></tr>
<tr class="memdesc:aea5ea980eb43d18958b9cb357188cce5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if no samples has been stored yet. <br /></td></tr>
<tr class="separator:aea5ea980eb43d18958b9cb357188cce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae65cd39bd483a328322abfc0bed1f5a6" id="r_ae65cd39bd483a328322abfc0bed1f5a6"><td class="memItemLeft" align="right" valign="top"><a id="ae65cd39bd483a328322abfc0bed1f5a6" name="ae65cd39bd483a328322abfc0bed1f5a6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsRead</b> () const</td></tr>
<tr class="memdesc:ae65cd39bd483a328322abfc0bed1f5a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the DG blocks data has been read not the DG block itself. <br  />
 <br /></td></tr>
<tr class="separator:ae65cd39bd483a328322abfc0bed1f5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20681c61a5ef0b7dcfd09c458c57802c" id="r_a20681c61a5ef0b7dcfd09c458c57802c"><td class="memItemLeft" align="right" valign="top"><a id="a20681c61a5ef0b7dcfd09c458c57802c" name="a20681c61a5ef0b7dcfd09c458c57802c"></a>
virtual <a class="el" href="classmdf_1_1_i_channel_group.html">IChannelGroup</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>FindParentChannelGroup</b> (const <a class="el" href="classmdf_1_1_i_channel.html">IChannel</a> &amp;channel) const =0</td></tr>
<tr class="memdesc:a20681c61a5ef0b7dcfd09c458c57802c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Support function that return the first CG block that contains a specific CN block. <br /></td></tr>
<tr class="separator:a20681c61a5ef0b7dcfd09c458c57802c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ac79f79337899ecdaa66fe303e7e588" id="r_a5ac79f79337899ecdaa66fe303e7e588"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5ac79f79337899ecdaa66fe303e7e588">IsSubscribingOnRecord</a> (uint64_t record_id) const</td></tr>
<tr class="memdesc:a5ac79f79337899ecdaa66fe303e7e588"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if this data group subscribes on a specific record.  <br /></td></tr>
<tr class="separator:a5ac79f79337899ecdaa66fe303e7e588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ef2006e32a6baf465c7ee6866da4553" id="r_a8ef2006e32a6baf465c7ee6866da4553"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8ef2006e32a6baf465c7ee6866da4553">IsSubscribingOnChannel</a> (const <a class="el" href="classmdf_1_1_i_channel.html">IChannel</a> &amp;channel) const</td></tr>
<tr class="memdesc:a8ef2006e32a6baf465c7ee6866da4553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if this data group subscribes on a specific channel.  <br /></td></tr>
<tr class="separator:a8ef2006e32a6baf465c7ee6866da4553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40ca6de5439d93f1d448013271a61136" id="r_a40ca6de5439d93f1d448013271a61136"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a40ca6de5439d93f1d448013271a61136">IsSubscribingOnChannelVlsd</a> (const <a class="el" href="classmdf_1_1_i_channel.html">IChannel</a> &amp;channel) const</td></tr>
<tr class="memdesc:a40ca6de5439d93f1d448013271a61136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if this data group subscribes on a specific channels VLSD raw data.  <br /></td></tr>
<tr class="separator:a40ca6de5439d93f1d448013271a61136"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classmdf_1_1_i_block"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classmdf_1_1_i_block')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmdf_1_1_i_block.html">mdf::IBlock</a></td></tr>
<tr class="memitem:ae457ca0b12e381f3a8239a6b34750a71 inherit pub_methods_classmdf_1_1_i_block" id="r_ae457ca0b12e381f3a8239a6b34750a71"><td class="memItemLeft" align="right" valign="top">
virtual&#160;</td><td class="memItemRight" valign="bottom"><b>~IBlock</b> ()=default</td></tr>
<tr class="memdesc:ae457ca0b12e381f3a8239a6b34750a71 inherit pub_methods_classmdf_1_1_i_block"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
<tr class="separator:ae457ca0b12e381f3a8239a6b34750a71 inherit pub_methods_classmdf_1_1_i_block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d4238fc723d16ccd8e010d098d4f45f inherit pub_methods_classmdf_1_1_i_block" id="r_a1d4238fc723d16ccd8e010d098d4f45f"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmdf_1_1_i_block.html#a1d4238fc723d16ccd8e010d098d4f45f">Index</a> () const =0</td></tr>
<tr class="memdesc:a1d4238fc723d16ccd8e010d098d4f45f inherit pub_methods_classmdf_1_1_i_block"><td class="mdescLeft">&#160;</td><td class="mdescRight">File position within the file.  <br /></td></tr>
<tr class="separator:a1d4238fc723d16ccd8e010d098d4f45f inherit pub_methods_classmdf_1_1_i_block"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdbad6ffc878074aecd665cfcadd795e inherit pub_methods_classmdf_1_1_i_block" id="r_afdbad6ffc878074aecd665cfcadd795e"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmdf_1_1_i_block.html#afdbad6ffc878074aecd665cfcadd795e">BlockType</a> () const =0</td></tr>
<tr class="memdesc:afdbad6ffc878074aecd665cfcadd795e inherit pub_methods_classmdf_1_1_i_block"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the block type.  <br /></td></tr>
<tr class="separator:afdbad6ffc878074aecd665cfcadd795e inherit pub_methods_classmdf_1_1_i_block"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:acd4dcbacd785c2e9cf21ef44005159b2" id="r_acd4dcbacd785c2e9cf21ef44005159b2"><td class="memItemLeft" align="right" valign="top"><a id="acd4dcbacd785c2e9cf21ef44005159b2" name="acd4dcbacd785c2e9cf21ef44005159b2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~IDataGroup</b> () override=default</td></tr>
<tr class="memdesc:acd4dcbacd785c2e9cf21ef44005159b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
<tr class="separator:acd4dcbacd785c2e9cf21ef44005159b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3013bdb6e84f902f27b091779432302" id="r_ad3013bdb6e84f902f27b091779432302"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3013bdb6e84f902f27b091779432302">InitFastObserverList</a> ()</td></tr>
<tr class="memdesc:ad3013bdb6e84f902f27b091779432302"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function optimize the observer list before reading data.  <br /></td></tr>
<tr class="separator:ad3013bdb6e84f902f27b091779432302"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:acc958272a3a6cc436b902b94d73158e8" id="r_acc958272a3a6cc436b902b94d73158e8"><td class="memItemLeft" align="right" valign="top"><a id="acc958272a3a6cc436b902b94d73158e8" name="acc958272a3a6cc436b902b94d73158e8"></a>
std::vector&lt; <a class="el" href="classmdf_1_1_i_sample_observer.html">ISampleObserver</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>observer_list_</b></td></tr>
<tr class="memdesc:acc958272a3a6cc436b902b94d73158e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of observers. <br /></td></tr>
<tr class="separator:acc958272a3a6cc436b902b94d73158e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdc7fd37e56e1603f8270e9c7d7092b1" id="r_abdc7fd37e56e1603f8270e9c7d7092b1"><td class="memItemLeft" align="right" valign="top"><a id="abdc7fd37e56e1603f8270e9c7d7092b1" name="abdc7fd37e56e1603f8270e9c7d7092b1"></a>
std::map&lt; uint64_t, std::vector&lt; <a class="el" href="classmdf_1_1_i_sample_observer.html">ISampleObserver</a> * &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>fast_observer_list_</b></td></tr>
<tr class="memdesc:abdc7fd37e56e1603f8270e9c7d7092b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The fast observer list is used internally when reading data. <br /></td></tr>
<tr class="separator:abdc7fd37e56e1603f8270e9c7d7092b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The data group block is the entry point for a measurement. The header (HD) block is the entry point for a test. A test consist of one or more measurements (DG).</p>
<p>Each measurement is defined by one or more channel groups (CG). The channel group in turn, consist of one or more channels. The group have an unique record ID.</p>
<p>A record is a byte array with fixed length and hold one sample for each channel in the group. The DG block also points to the data blocks (DT) which is an array of sample records.</p>
<p>In MDF version 3, data was always stored as raw bytes in a DT block. In version 4 the DT block may be split, reorganized and compressed. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a587a87009a2cc5bbdb067f4c7fbe4d1b" name="a587a87009a2cc5bbdb067f4c7fbe4d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a587a87009a2cc5bbdb067f4c7fbe4d1b">&#9670;&#160;</a></span>ClearData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mdf::IDataGroup::ClearData </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Clear all sample and signal data buffers. Call this function when no need of any signal data (SD) or sample reduction (SR) data are needed. This reduce memory usage if more DG blocks should read in data bytes. </p>

</div>
</div>
<a id="ad3013bdb6e84f902f27b091779432302" name="ad3013bdb6e84f902f27b091779432302"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3013bdb6e84f902f27b091779432302">&#9670;&#160;</a></span>InitFastObserverList()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void mdf::IDataGroup::InitFastObserverList </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The function is called before reading any data in the file. The purpose is optimize the read speed of files with many sample. The function is used internally only. </p>

</div>
</div>
<a id="a8ef2006e32a6baf465c7ee6866da4553" name="a8ef2006e32a6baf465c7ee6866da4553"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ef2006e32a6baf465c7ee6866da4553">&#9670;&#160;</a></span>IsSubscribingOnChannel()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mdf::IDataGroup::IsSubscribingOnChannel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmdf_1_1_i_channel.html">IChannel</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>channel</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">nodiscard</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">channel</td><td>Reference to the channel. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the observer list subscribe on this channel. </dd></dl>

</div>
</div>
<a id="a40ca6de5439d93f1d448013271a61136" name="a40ca6de5439d93f1d448013271a61136"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40ca6de5439d93f1d448013271a61136">&#9670;&#160;</a></span>IsSubscribingOnChannelVlsd()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mdf::IDataGroup::IsSubscribingOnChannelVlsd </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmdf_1_1_i_channel.html">IChannel</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>channel</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">nodiscard</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">channel</td><td>Reference to the channel. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the observer list subscribe on this channels VLSD raw data . </dd></dl>

</div>
</div>
<a id="a5ac79f79337899ecdaa66fe303e7e588" name="a5ac79f79337899ecdaa66fe303e7e588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ac79f79337899ecdaa66fe303e7e588">&#9670;&#160;</a></span>IsSubscribingOnRecord()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mdf::IDataGroup::IsSubscribingOnRecord </td>
          <td>(</td>
          <td class="paramtype">uint64_t</td>          <td class="paramname"><span class="paramname"><em>record_id</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">nodiscard</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">record_id</td><td>Record ID of the channel group </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the observer list subscribe on this channel group. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/mdf/<a class="el" href="idatagroup_8h_source.html">idatagroup.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
